Numeric casts
This crate provides casts and checked casts.
What’s new
Version 0.3.1 news (2020-04-17)
- Static casts were deprecated as their use case was unclear.
Version 0.3.0 news (2019-10-01)
- The behavior of static casts was changed: now they return
Option
, but an implementation should either always returnSome
or always returnNone
. - Bug fix: checked casts from floating-point to wrapped integers were panicking for infinite or NaN.
Quick examples
use ;
use Wrapping;
// Panics on overflow with `debug_assertions`, otherwise wraps
assert_eq!;
// Always wraps
let wrapped = 1u32.wrapping_neg;
assert_eq!;
assert_eq!;
// Wrapping can also be obtained using `Wrapping`
assert_eq!;
Conversions from floating-point to integers are also supported.
Numbers are rounded towards zero, but the Round
wrapper can be
used to convert floating-point numbers to integers with rounding to
the nearest, with ties rounded to even.
use ;
use f32;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Using the az crate
The az crate is available on crates.io. To use it in your crate, add it as a dependency inside Cargo.toml:
[]
= "0.3.1"
License
This crate is free software: you can redistribute it and/or modify it under the terms of either
- the Apache License, Version 2.0 or
- the MIT License
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache License, Version 2.0, shall be dual licensed as above, without any additional terms or conditions.